$(function () {
    //功能一: 全选 
    /* 
        需求:点击全选按钮,让所有的商品进行选中效果
    */

    // 当前为有input标签样式,操作比较麻烦 有BUG

    /*  $('.allSelect').click(function(){
         // alert(1)
         //获取当前span的兄弟input的状态值
         let status=$(this).siblings('input').prop('checked');
 
         //设置当前状态到其它商品中的input标签上
         $('.singleSelect').prop('checked',!status);
 
         //把另一个全选也进行选中
         $('.otherSelt').prop('checked',!status);
         console.log(status)
     }) */

    $('.inpbox').click(function () {
        // alert(1)
        //1.获取当前input标签的状态值
        let status = $(this).prop('checked');

        //2.把所有商品进行同步状态(选中)
        $('.inpbox1').prop('checked', status);

        //3.把另一个全选也进行同步状态
        $('.inpbox').prop('checked', status);
        //调用
        lok()
    })

    //功能二: 反选
    /* 
        思路:
            1.给singleSelect注册点击事件
            2.定义标杆状态  let flag=false
            3.动态获取到所有单个商品的状态值
                判定:
                    如果其中有一个没有选中,全选就不能选中
                    切换标杆状态  flag=!flag

            4.通过判定flag的状态来设置对应 全选按钮的状态

    
    */
    /* $('.inpbox1').click(function(){
     //    alert(1)
         //定义标杆状态 (未选中)
         let flag=false;
 
         //获取 [所有单个商品] 的状态值()
         //let status=$('.singleSelect').prop('checked');//只能获取到第一个input标签的状态,不能使用
         
         //需要使用遍历 获取所有单个商品状态值
         $('.inpbox1').each(function(index,dom){
             //console.log(dom);//获取到是原生对象
            //console.log($(this));//jq对象
 
            //获取第一个单个商品input标签的状态值
            let status=$(this).prop('checked');
 
            //判定:  只要有一个为false 不选中全选 
            //status==false
            if(!status){
              //切换
              flag=true;
              //一般只要有一个为false,后面的东西就可以不执行了 跳出操作
              return;
            }
         })
 
         //判定  当flag 为true时, 表示单个商品至少有一件没有选中  不全选
         if(flag){
             //不全选
             $('.inpbox').prop('checked',false);
         }else{
             //全选
             $('.inpbox').prop('checked',true);
         }
 
    })  */

    $('.inpbox1').click(function () {
        let len = $('.inpbox1').length;
        //console.log(len);
        let slen = $('.inpbox1:checked').length;
        //console.log(len,slen);
        if (len == slen) {
            $('.inpbox').prop('checked', true);
        } else {
            $('.inpbox').prop('checked', false);
        }
        lok()
    })
    //   console.log(forzz);


  //加减 
    $('.addNum').click(function () {
        let num =$(this).siblings('.txt').val()//获取当前兄弟的input的val值
        $('.reduce').css({
            color:'',
            cursor:'',
        })
        num = parseInt(num)+1 //点击一次 增加1 取整数 赋予
        $(this).siblings('.txt').val(num)  //
        //调用
        stotar(this,num)
        lok()

    })


    //减
    $('.reduce').click(function () {
        var num =$(this).siblings('.txt').val()  //获取 input的val值
        let danjias = $(this).closest('tr').find('.danjia').text()//当前的父级的tr 下面的.单价的text值
         if(num>1){ 
             num = parseInt(num)-1
             $(this).siblings('.txt').val(num)  //赋予给input值
             $(this).closest('td').siblings('.xiaoji').text((num*danjias).toFixed(2))
         }
         else{
             $(this).css({
                color:"#ccc",
                cursor:'not-allowed',
            })
         }
         lok()
        
     })

     function stotar(obj,num){
        let danjias = $(obj).closest('tr').find('.danjia').text()//当前的父级的tr 下面的.单价的text值
        //console.log(danjias);
        $(obj).closest('td').siblings('.xiaoji').text((num*danjias).toFixed(2))// 数量val的值乘以单价 保留两位小数
     }

     //删除 
     $('.del').click(function(){
         $(this).closest('tr').remove()
        //console.log(1);
     })

    function lok(){
        let numN=0,
            numZ=0;
        $('.wocao:checked').each(function(){
            //获取已经点击的 input的父级下面的.txt的val值
            let totalN=parseInt($(this).closest('tr').find('.txt').val());
            //console.log(totalN);
            numN+=totalN

            let num=parseFloat($(this).closest('tr').find('.xiaoji').text());
            numZ+=num
            //console.log(num);
    
            
        })
        //console.log(numN);
        $('.total').text(numN)

        //总计
        $('.totalbox').text(numZ.toFixed(2))

        
    }


    


     //总件数
        


     //总价格

     

})

//    console.log(num);

     




